// 存储状态（变量）
const state = {
  loading: false,
  subloading: true
}

//  mutations 里面放置的是我们操作state对象属性的方法(修改状态，并且是同步的。在组件中使用$store.commit('',params))
const mutations = {
  SET_LOADING (state, Bool) {
    if (Bool) { state.loading = true } else { state.loading = false }
  },
  SET_SUBLOADING (state, Bool) {
    if (Bool) { state.subloading = true } else { state.subloading = false }
  }
}

// actions是异步操作。在组件中使用是$store.dispath('')
const actions = {
  CHANGE_LOADING ({commit}, Bool) {
    commit('SET_LOADING', Bool)
  },
  CHNAGE_SUBLOADING ({commit}, Bool) {
    commit('SET_SUBLOADING', Bool)
  },
  CHANGE_IS_OPEN ({commit}, Bool) {
    commit('SET_IS_OPEN', Bool)
  },
  CHANGE_DEL_ISOPEN ({commit}, Bool) {
    commit('DELETE_ISOPEN', Bool)
  },
  CHANGE_IS_XQ_OPEN ({commit}, Bool) {
    commit('SET_IS_XQ_OPEN', Bool)
  },
  CHANGE_DEL_XQ_ISOPEN ({commit}, Bool) {
    commit('DELETE_XQ_ISOPEN', Bool)
  }
}

// 对数据获取之前的再次编译，可以理解为state的计算属性。我们在组件中使用 $sotre.getters.fun()
const getters = {
  GET_LOADING () {
    return state.loading
  },
  GET_SUBLOADING () {
    return state.subloading
  }
}

// 不要忘记把state, mutations等暴露出去。
export default {
  namespaced: true, // 启用命令空间后，action mutations方法只在当前module有效 在组件中调用需要加上当前模块名称例如this.$store.dispatch('login/actAdd',10)
  state,
  mutations,
  actions,
  getters
}

